/*******************************************************************************
 ** Name: fuzzy_mod.h                                                         **
 ** Description:                         **
 **                                                                           **
 ** Open Source Initiative (OSI) Approved License                             **
 **                                                                           **
 ** The contents of this file are subject to the terms of the                 **
 ** Common Development and Distribution License, Version 1.0 only             **
 ** (the "License").  You may not use this file except in compliance          **
 ** with the License.                                                         **
 **                                                                           **
 ** You can find a copy of the license in the LICENSE file within             **
 ** this distribution or at $WIKI/display/GOVT/License-software.              **
 ** Software distributed under the License is distributed on an "AS IS"       **
 ** basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.           **
 ** See the License for the specific language governing permissions           **
 ** and limitations under the License.                                        **
 **                                                                           **
 ** When distributing Covered Code, include this CDDL header in each          **
 ** file and include the License file at $GAME_DIR/LICENSE.                   **
 ** If applicable, add the following below this header, with the indicated    **
 ** fields enclosed by brackets "[]" replaced with your own identifying       **
 ** information: Portions Copyright [yyyy] [name of copyright owner]          **
 **                                                                           **
 ** Copyright (c) 2009-2011  Barry Gian James <nevdull@computer.org>          **
 ** All rights reserved.                                                      **
 **                                                                           **
 ** Ref: $HeadURL$
 ******************************************************************************/

#ifndef fuzzy_mod_H
#define fuzzy_mod_H

#include <falcon/property.h>
#include <falcon/method.h>
#include <falcon/classes/classuser.h>
#include <falcon/vm.h>
#include <falcon/vmcontext.h>

namespace Falcon {
namespace Ext {

class FALCON_DYN_CLASS FuzzyCategory : public ClassUser
{
public:
	FuzzyCategory();
	virtual ~FuzzyCategory();

//	virtual void store(VMContext*,DataWriter*,void*) const;
//	virtual void restore(VMContext*,DataReader*,void*&) const;

	virtual void * createInstance() const;
	virtual bool op_init(VMContext*,void *,int) const;
	virtual void op_toString(VMContext*,void*) const;

private:
	// Declare methods
	FALCON_DECLARE_METHOD(Range,"N,N,N")
	FALCON_DECLARE_METHOD(Membership,"");

	// Declare properties/members
	FALCON_DECLARE_PROPERTY(low);
	FALCON_DECLARE_PROPERTY(mid);
	FALCON_DECLARE_PROPERTY(high);

	double low, mid, high;

};

}	/* namespace Ext */
}	/* namespace Falcon */

#endif

/* end of fuzzy_mod.h */

